/**
 * 
 */
package com.zxc.redis.RBitSet;

import java.math.BigInteger;

import org.redisson.Redisson;
import org.redisson.api.RBitSet;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;

/**
 * 分布式BitSet
 * @author Administrator
 *
 */
public class RBitSetDemo {

	public static void main(String[] args) {
		
		Config config = new Config();
		config
			//.setCodec(new FstCodec())
			.useSingleServer() //单例模式
			.setAddress("192.168.1.122:6379")//连接地址
			.setDatabase(1) // 数据库索引位置
			.setPassword("shijie99test") // 密码
			.setClientName("channelbatch") // 客户端名称
			;
		RedissonClient redisson = Redisson.create(config);
		
		RBitSet set = redisson.getBitSet("bit1");
		set.set(0, true);
		
		System.out.println("获取指定二进制位的位数对应的值"+set.get(0));
		
		set.set(1, true);
		
		System.out.println("获取指定二进制位的位数对应的值"+set.get(1));
		
		set.set(2, true);
		
		System.out.println("获取指定二进制位的位数对应的值"+set.get(2));
		
//		set.clear(0);
		
//		set.andAsync("bit");
		
//		set.xor("bit");
		
		long len = set.length();
		System.out.println("获取指定二进制字符串的长度:"+len);
		
		RBitSet set1 = redisson.getBitSet("bit");
		set1.set(0, false);
		set1.set(1, true);
		set1.set(2, true);
		
		set.and("bit");
		System.out.println("获取指定二进制字符串："+binary(set.toByteArray(), 2));
		
		redisson.shutdown();
	}
	
	public static String binary(byte[] bytes, int radix){  
        return new BigInteger(1, bytes).toString(radix);// 这里的1代表正数  
    }  
}
